package 案例;

import jdk.internal.util.xml.impl.Input;

import java.io.*;
import java.util.Scanner;

//案例2:复制一个文件
//启动程序之后,让用户输入一个文件的路径(绝对路径)要求这个文件是一个普通文件,不是目录.
//然后再指定一个要复制过去的目标目录
//通过程序,把这个文件给进行复制.
public class Test2 {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要复制的普通文件的路径(绝对路径):>");
        String rootFile = scanner.next();
        File file1 = new File(rootFile);
        if (!file1.isFile()) {
            System.out.println("输入有误!程序退出!");
            return;
        }
        System.out.println("请输入一个要复制过去的目标目录的路径(绝对路径):>");
        String target = scanner.next();
        File file2 = new File(target + '/' + file1.getName());
        if (file2.exists()) {
            System.out.println(file2.getName() + "文件已经存在,是否覆盖该文件? Y/N");
            String input = scanner.next();
            if(!input.equalsIgnoreCase("Y")){
                return;
            }

        }else{
            file2.createNewFile();
        }
//        if(){
//
//        }
//        boolean a = file1.renameTo(file2);
//        System.out.println(a);

        //进行复制操作
        //打开要复制的文件,然后读取里面的内容,再写入另外一个文件里面去
        try (InputStream inputStream = new FileInputStream(file1);OutputStream outputStream = new FileOutputStream(file2)) {
//            try(OutputStream outputStream = new FileOutputStream(file1)){
//            try (Scanner scanner1 = new Scanner(inputStream, "UTF-8")) {
                    while (true) {
                        byte[] bytes = new byte[1024];
                        int len = inputStream.read(bytes);//参数是用来指定一次读取多少个字节,如果无参就默认只读一个字节
                        if (len == -1) {
                            break;
                        }
                        outputStream.write(bytes,0,len);//设置每次写多少入多少个字节
                    }

//            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("复制成功");
    }
}


